package com.qf.day04.homeWork;
import java.util.LinkedList;
/**
 * (选做)死亡游戏(约瑟夫环问题)。
 * 8个死刑犯围成一圈(序号0-7)，依次报数，每次报到三，该死刑犯出局。问最后存活的是几号。
 */
public class HomeWork2 {
    public static void main(String[] args) {
        int n = 8; // 总人数
        int m = 3; // 报数的数字
        int lastPerson = josephus(n, m)-1;
        System.out.println("最后剩下的人的编号是：" + lastPerson);
    }
public static int josephus(int n, int m) {
    LinkedList<Integer> circle = new LinkedList<>();
    for (int i = 1; i <= n; i++) {
        circle.add(i);
    }

    int index = 0;
    while (circle.size() > 1) {
        index = (index + m - 1) % circle.size();
        circle.remove(index);
    }

    return circle.get(0);
}


}
